/* 
store对象
*/
import {createStore, applyMiddleware, combineReducers} from 'redux'
import thunk from 'redux-thunk'
import {composeWithDevTools} from 'redux-devtools-extension'
import todosReducer from './todos'

/* 
当应用中有多个模块的不同数据需要管理时  => 有多个reducer
解决: 使用redux提供combineReducers来合并多个reducer来管理所有模块的状态数据
    返回一个管理所有state的根/总reducer
    function (state, action) {} // state就是总的state: 包含所有模块的state
总的state的结构
    { 
      users: []
    }
*/
const rootReducer = combineReducers({
  todos: todosReducer,
  // 可能还有其它redux模块
})

// store.dispatch({type: 'xxx'})



// 创建store, 指定reducer函数, 应用上异步插件
const store = createStore(rootReducer, composeWithDevTools(applyMiddleware(thunk)))

export default store